البرمجة

مفاتيح الكائنات في جافاسكربت

مفاتيح الكائنات وقيمها ومدخلاتها في جافاسكربت: شرح مفصل

في عالم البرمجة باستخدام جافاسكربت، يعد مفهوم “الكائنات” (Objects) من الأساسيات التي يجب على كل مبرمج إتقانها لفهم كيفية تنظيم البيانات والتفاعل معها. تُستخدم الكائنات بشكل واسع لتخزين مجموعة من القيم تحت أسماء أو مفاتيح معينة، مما يسهل الوصول إلى هذه القيم ومعالجتها بطريقة مرنة وفعّالة. في هذا المقال، سنتناول مفاتيح الكائنات، قيمها، ومدخلاتها في جافاسكربت بشكل مفصل، بدءًا من التعريف البسيط لهذه المفاهيم وصولاً إلى كيفية استخدامها في سيناريوهات البرمجة اليومية.

1. الكائنات في جافاسكربت: مقدمة أساسية

الكائنات هي بنية بيانات تُستخدم لتخزين مجموعات من القيم التي يمكن أن تكون من أنواع متعددة. في جافاسكربت، الكائن يتمثل في مجموعة من الأزواج المكونة من مفتاح وقيمة. كل مفتاح في الكائن يُعرف على أنه “مفتاح” (Key) أو “اسم الخصيصة” (Property Name)، بينما القيمة المرتبطة به تُسمى “القيمة” (Value).

يمكن للكائن أن يحتوي على أي نوع من القيم مثل الأرقام، النصوص، المصفوفات، وحتى كائنات أخرى. وتتيح الكائنات إمكانية تنظيم البيانات بطريقة تجعل الوصول إليها وتعديلها أسهل.

على سبيل المثال:

javascript
let person = { name: "Ahmed", age: 30, isStudent: false };

في هذا المثال، person هو كائن يحتوي على ثلاث خصائص أو مفاتيح: name, age, و isStudent، حيث تتراوح القيم المرتبطة بها بين النصوص (String)، الأرقام (Number)، والقيم المنطقية (Boolean).

2. مفاتيح الكائنات (Object Keys)

المفتاح هو عبارة عن “اسم” أو “عنوان” يُستخدم للوصول إلى القيمة المرتبطة به داخل الكائن. يمكن أن تكون المفاتيح في جافاسكربت من نوع نص (String) أو رمز (Symbol). عند تعريف كائن في جافاسكربت، يتم تحديد المفاتيح بشكل صريح باستخدام النصوص. على سبيل المثال:

javascript
let car = { make: "Toyota", model: "Corolla", year: 2020 };

هنا، make, model, و year هي المفاتيح، وهذه المفاتيح مرتبطة بقيم معينة هي "Toyota", "Corolla", و 2020 على التوالي.

يمكن أن يحتوي المفتاح على أي سلسلة نصية، إلا أنه في حال كان اسم المفتاح يحتوي على مسافات أو أحرف خاصة، يتم وضعه بين علامات اقتباس مزدوجة أو مفردة.

على سبيل المثال:

javascript
let user = { "first name": "John", "last name": "Doe" };

3. القيم المرتبطة بالمفاتيح (Object Values)

القيمة المرتبطة بالمفتاح هي البيانات التي يتم تخزينها داخل الكائن. القيم يمكن أن تكون من أي نوع من أنواع البيانات في جافاسكربت، مثل:

  • أرقام (Number)

  • نصوص (String)

  • قيم منطقية (Boolean)

  • كائنات (Objects)

  • مصفوفات (Arrays)

  • دوال (Functions)

على سبيل المثال:

javascript
let student = { name: "Ali", age: 22, courses: ["Math", "Physics", "Chemistry"], greet: function() { console.log("Hello, " + this.name); } };

في هذا المثال، الكائن student يحتوي على مفتاح name الذي يرتبط بالقيمة "Ali"، ومفتاح age الذي يرتبط بالقيمة 22، ومفتاح courses الذي يحتوي على مصفوفة، ومفتاح greet الذي يحتوي على دالة.

4. الوصول إلى المفاتيح والقيم

يمكن الوصول إلى المفاتيح والقيم في الكائن باستخدام طريقتين رئيسيتين:

4.1. باستخدام النقطة (Dot Notation)

في هذه الطريقة، يتم استخدام النقطة للوصول إلى المفتاح داخل الكائن:

javascript
let person = { name: "Sara", age: 25 }; console.log(person.name); // "Sara" console.log(person.age); // 25

4.2. باستخدام الأقواس المربعة (Bracket Notation)

تسمح هذه الطريقة بالوصول إلى المفاتيح باستخدام سلسلة نصية داخل أقواس مربعة. يمكن استخدام هذه الطريقة في حال كانت المفاتيح تحتوي على مسافات أو أحرف خاصة أو إذا كان اسم المفتاح يتم تحديده ديناميكيًا:

javascript
let person = { "first name": "Sara", age: 25 }; console.log(person["first name"]); // "Sara" console.log(person["age"]); // 25

5. إضافة أو تعديل المدخلات في الكائنات

في جافاسكربت، يمكنك إضافة أو تعديل المدخلات في الكائن باستخدام نفس الطريقتين للوصول إلى القيم. إذا كان المفتاح غير موجود في الكائن، يتم إضافته مع قيمته. وإذا كان المفتاح موجودًا، يتم تعديل قيمته.

5.1. باستخدام النقطة (Dot Notation)

javascript
let car = { make: "Toyota", model: "Corolla" }; car.year = 2021; // إضافة مدخل جديد car.model = "Camry"; // تعديل المدخل الموجود console.log(car); // { make: "Toyota", model: "Camry", year: 2021 }

5.2. باستخدام الأقواس المربعة (Bracket Notation)

javascript
let person = { name: "Ali" }; person["age"] = 30; // إضافة مدخل جديد person["name"] = "Ahmed"; // تعديل المدخل الموجود console.log(person); // { name: "Ahmed", age: 30 }

6. حذف مدخلات الكائن

يمكن حذف المدخلات من الكائن باستخدام الكلمة المفتاحية delete:

javascript
let student = { name: "Mohammed", age: 20, grade: "A" }; delete student.age; // حذف المدخل "age" console.log(student); // { name: "Mohammed", grade: "A" }

7. التكرار عبر الكائنات

تعتبر الكائنات في جافاسكربت بنية بيانات غير مرتبة، لكن في بعض الأحيان قد تحتاج إلى التكرار عبر مفاتيح الكائنات وقيمها. يمكن فعل ذلك باستخدام الحلقات المختلفة مثل for...in أو Object.keys().

7.1. باستخدام for...in

javascript
let student = { name: "Ahmed", age: 22, courses: ["Math", "Science"] }; for (let key in student) { console.log(key + ": " + student[key]); }

7.2. باستخدام Object.keys()

javascript
let student = { name: "Ahmed", age: 22, courses: ["Math", "Science"] }; Object.keys(student).forEach(function(key) { console.log(key + ": " + student[key]); });

8. الكائنات الداخلية في جافاسكربت

يمكن أن يحتوي الكائن أيضًا على كائنات داخلية (Nested Objects). هذه الكائنات تتيح لك تنظيم البيانات بشكل أكثر تعقيدًا ومرونة:

javascript
let user = { name: "Ali", address: { city: "Cairo", country: "Egypt" } }; console.log(user.address.city); // "Cairo"

9. استخدام الكائنات مع الدوال

غالبًا ما تستخدم الكائنات مع الدوال لتمثيل خصائص أو سلوكيات أكثر تعقيدًا:

javascript
let car = { make: "Ford", model: "Mustang", year: 2020, getCarInfo: function() { return this.make + " " + this.model + " (" + this.year + ")"; } }; console.log(car.getCarInfo()); // "Ford Mustang (2020)"

10. الخلاصة

الكائنات في جافاسكربت هي واحدة من الأدوات الأكثر أهمية التي يجب على المبرمجين إتقانها. من خلال المفاتيح والقيم، يمكنك تخزين البيانات بشكل منظم، الوصول إليها بسرعة، وتعديلها حسب الحاجة. باستخدام الكائنات، يمكن تمثيل مجموعة كبيرة من البيانات المعقدة بطريقة سهلة الفهم والمرونة.